// $ANTLR 3.0.1 C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g 2008-10-24 10:34:15

  package org.bling.language;


import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

public class BlingLexer extends Lexer {
    public static final int TAG_ATTRIBUTE=4;
    public static final int TAG_CLOSE=20;
    public static final int COMMAND_OPEN=16;
    public static final int SNIPPET=5;
    public static final int COMMENT_OPEN=12;
    public static final int WHITESPACE=15;
    public static final int LINEEND=11;
    public static final int TEXT=9;
    public static final int T25=25;
    public static final int Tokens=26;
    public static final int EOF=-1;
    public static final int ROOT=10;
    public static final int COMMAND_CLOSE=17;
    public static final int TAG_OPEN=19;
    public static final int WORD=21;
    public static final int TAG_SELF_CLOSING=8;
    public static final int CLOSING_TAG=24;
    public static final int XML_COMMENT=14;
    public static final int STRING_LITERAL=22;
    public static final int CODE_SNIPPET=18;
    public static final int TAG_SELF_CLOSE=23;
    public static final int COMMENT_CLOSE=13;
    public static final int TAG_CLOSING=7;
    public static final int TAG_OPENING=6;
    public BlingLexer() {;} 
    public BlingLexer(CharStream input) {
        super(input);
    }
    public String getGrammarFileName() { return "C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g"; }

    // $ANTLR start T25
    public final void mT25() throws RecognitionException {
        try {
            int _type = T25;
            // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:6:5: ( '=' )
            // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:6:7: '='
            {
            match('='); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end T25

    // $ANTLR start LINEEND
    public final void mLINEEND() throws RecognitionException {
        try {
            int _type = LINEEND;
            // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:29:9: ( ( '\\r' | '\\n' ) )
            // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:29:12: ( '\\r' | '\\n' )
            {
            if ( input.LA(1)=='\n'||input.LA(1)=='\r' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse =
                    new MismatchedSetException(null,input);
                recover(mse);    throw mse;
            }

            channel=HIDDEN;

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end LINEEND

    // $ANTLR start XML_COMMENT
    public final void mXML_COMMENT() throws RecognitionException {
        try {
            int _type = XML_COMMENT;
            // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:31:13: ( COMMENT_OPEN ( options {greedy=false; } : . )* COMMENT_CLOSE )
            // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:31:15: COMMENT_OPEN ( options {greedy=false; } : . )* COMMENT_CLOSE
            {
            mCOMMENT_OPEN(); 
            // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:31:28: ( options {greedy=false; } : . )*
            loop1:
            do {
                int alt1=2;
                int LA1_0 = input.LA(1);

                if ( (LA1_0=='-') ) {
                    int LA1_1 = input.LA(2);

                    if ( (LA1_1=='-') ) {
                        int LA1_3 = input.LA(3);

                        if ( ((LA1_3>='\u0000' && LA1_3<='=')||(LA1_3>='?' && LA1_3<='\uFFFE')) ) {
                            alt1=1;
                        }
                        else if ( (LA1_3=='>') ) {
                            alt1=2;
                        }


                    }
                    else if ( ((LA1_1>='\u0000' && LA1_1<=',')||(LA1_1>='.' && LA1_1<='\uFFFE')) ) {
                        alt1=1;
                    }


                }
                else if ( ((LA1_0>='\u0000' && LA1_0<=',')||(LA1_0>='.' && LA1_0<='\uFFFE')) ) {
                    alt1=1;
                }


                switch (alt1) {
            	case 1 :
            	    // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:31:56: .
            	    {
            	    matchAny(); 

            	    }
            	    break;

            	default :
            	    break loop1;
                }
            } while (true);

            mCOMMENT_CLOSE(); 
            channel=HIDDEN;

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end XML_COMMENT

    // $ANTLR start WHITESPACE
    public final void mWHITESPACE() throws RecognitionException {
        try {
            int _type = WHITESPACE;
            // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:32:12: ( ( ' ' | '\\t' | '\\u000C' ) )
            // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:32:15: ( ' ' | '\\t' | '\\u000C' )
            {
            if ( input.LA(1)=='\t'||input.LA(1)=='\f'||input.LA(1)==' ' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse =
                    new MismatchedSetException(null,input);
                recover(mse);    throw mse;
            }

            channel=HIDDEN;

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end WHITESPACE

    // $ANTLR start CODE_SNIPPET
    public final void mCODE_SNIPPET() throws RecognitionException {
        try {
            int _type = CODE_SNIPPET;
            // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:34:14: ( COMMAND_OPEN ( options {greedy=false; } : . )* COMMAND_CLOSE )
            // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:34:16: COMMAND_OPEN ( options {greedy=false; } : . )* COMMAND_CLOSE
            {
            mCOMMAND_OPEN(); 
            // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:34:30: ( options {greedy=false; } : . )*
            loop2:
            do {
                int alt2=2;
                int LA2_0 = input.LA(1);

                if ( (LA2_0=='%') ) {
                    int LA2_1 = input.LA(2);

                    if ( (LA2_1=='>') ) {
                        alt2=2;
                    }
                    else if ( ((LA2_1>='\u0000' && LA2_1<='=')||(LA2_1>='?' && LA2_1<='\uFFFE')) ) {
                        alt2=1;
                    }


                }
                else if ( ((LA2_0>='\u0000' && LA2_0<='$')||(LA2_0>='&' && LA2_0<='\uFFFE')) ) {
                    alt2=1;
                }


                switch (alt2) {
            	case 1 :
            	    // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:34:58: .
            	    {
            	    matchAny(); 

            	    }
            	    break;

            	default :
            	    break loop2;
                }
            } while (true);

            mCOMMAND_CLOSE(); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end CODE_SNIPPET

    // $ANTLR start WORD
    public final void mWORD() throws RecognitionException {
        try {
            int _type = WORD;
            // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:36:6: ( (~ ( TAG_OPEN | TAG_CLOSE | '\\n' | '\\r' | ' ' | '\\t' | '\\u000C' | '=' | '\"' ) )+ )
            // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:36:8: (~ ( TAG_OPEN | TAG_CLOSE | '\\n' | '\\r' | ' ' | '\\t' | '\\u000C' | '=' | '\"' ) )+
            {
            // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:36:8: (~ ( TAG_OPEN | TAG_CLOSE | '\\n' | '\\r' | ' ' | '\\t' | '\\u000C' | '=' | '\"' ) )+
            int cnt3=0;
            loop3:
            do {
                int alt3=2;
                int LA3_0 = input.LA(1);

                if ( ((LA3_0>='\u0000' && LA3_0<='\b')||LA3_0=='\u000B'||(LA3_0>='\u000E' && LA3_0<='\u001F')||LA3_0=='!'||(LA3_0>='#' && LA3_0<=';')||(LA3_0>='?' && LA3_0<='\uFFFE')) ) {
                    alt3=1;
                }


                switch (alt3) {
            	case 1 :
            	    // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:36:8: ~ ( TAG_OPEN | TAG_CLOSE | '\\n' | '\\r' | ' ' | '\\t' | '\\u000C' | '=' | '\"' )
            	    {
            	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='\b')||input.LA(1)=='\u000B'||(input.LA(1)>='\u000E' && input.LA(1)<='\u001F')||input.LA(1)=='!'||(input.LA(1)>='#' && input.LA(1)<=';')||(input.LA(1)>='?' && input.LA(1)<='\uFFFE') ) {
            	        input.consume();

            	    }
            	    else {
            	        MismatchedSetException mse =
            	            new MismatchedSetException(null,input);
            	        recover(mse);    throw mse;
            	    }


            	    }
            	    break;

            	default :
            	    if ( cnt3 >= 1 ) break loop3;
                        EarlyExitException eee =
                            new EarlyExitException(3, input);
                        throw eee;
                }
                cnt3++;
            } while (true);


            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end WORD

    // $ANTLR start STRING_LITERAL
    public final void mSTRING_LITERAL() throws RecognitionException {
        try {
            int _type = STRING_LITERAL;
            // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:38:17: ( '\"' (~ ( '\"' | '\\r' | '\\n' ) )* '\"' )
            // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:38:19: '\"' (~ ( '\"' | '\\r' | '\\n' ) )* '\"'
            {
            match('\"'); 
            // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:38:24: (~ ( '\"' | '\\r' | '\\n' ) )*
            loop4:
            do {
                int alt4=2;
                int LA4_0 = input.LA(1);

                if ( ((LA4_0>='\u0000' && LA4_0<='\t')||(LA4_0>='\u000B' && LA4_0<='\f')||(LA4_0>='\u000E' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='\uFFFE')) ) {
                    alt4=1;
                }


                switch (alt4) {
            	case 1 :
            	    // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:38:24: ~ ( '\"' | '\\r' | '\\n' )
            	    {
            	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='\uFFFE') ) {
            	        input.consume();

            	    }
            	    else {
            	        MismatchedSetException mse =
            	            new MismatchedSetException(null,input);
            	        recover(mse);    throw mse;
            	    }


            	    }
            	    break;

            	default :
            	    break loop4;
                }
            } while (true);

            match('\"'); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end STRING_LITERAL

    // $ANTLR start TAG_OPEN
    public final void mTAG_OPEN() throws RecognitionException {
        try {
            int _type = TAG_OPEN;
            // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:40:17: ( '<' )
            // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:40:19: '<'
            {
            match('<'); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end TAG_OPEN

    // $ANTLR start TAG_CLOSE
    public final void mTAG_CLOSE() throws RecognitionException {
        try {
            int _type = TAG_CLOSE;
            // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:41:17: ( '>' )
            // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:41:19: '>'
            {
            match('>'); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end TAG_CLOSE

    // $ANTLR start TAG_SELF_CLOSE
    public final void mTAG_SELF_CLOSE() throws RecognitionException {
        try {
            int _type = TAG_SELF_CLOSE;
            // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:42:17: ( '/>' )
            // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:42:19: '/>'
            {
            match("/>"); 


            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end TAG_SELF_CLOSE

    // $ANTLR start COMMENT_OPEN
    public final void mCOMMENT_OPEN() throws RecognitionException {
        try {
            int _type = COMMENT_OPEN;
            // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:43:17: ( '<!--' )
            // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:43:19: '<!--'
            {
            match("<!--"); 


            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end COMMENT_OPEN

    // $ANTLR start COMMENT_CLOSE
    public final void mCOMMENT_CLOSE() throws RecognitionException {
        try {
            int _type = COMMENT_CLOSE;
            // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:44:17: ( '-->' )
            // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:44:19: '-->'
            {
            match("-->"); 


            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end COMMENT_CLOSE

    // $ANTLR start COMMAND_OPEN
    public final void mCOMMAND_OPEN() throws RecognitionException {
        try {
            int _type = COMMAND_OPEN;
            // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:45:17: ( '<%' )
            // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:45:19: '<%'
            {
            match("<%"); 


            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end COMMAND_OPEN

    // $ANTLR start COMMAND_CLOSE
    public final void mCOMMAND_CLOSE() throws RecognitionException {
        try {
            int _type = COMMAND_CLOSE;
            // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:46:17: ( '%>' )
            // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:46:19: '%>'
            {
            match("%>"); 


            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end COMMAND_CLOSE

    // $ANTLR start CLOSING_TAG
    public final void mCLOSING_TAG() throws RecognitionException {
        try {
            int _type = CLOSING_TAG;
            // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:47:17: ( '</' )
            // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:47:19: '</'
            {
            match("</"); 


            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end CLOSING_TAG

    public void mTokens() throws RecognitionException {
        // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:1:8: ( T25 | LINEEND | XML_COMMENT | WHITESPACE | CODE_SNIPPET | WORD | STRING_LITERAL | TAG_OPEN | TAG_CLOSE | TAG_SELF_CLOSE | COMMENT_OPEN | COMMENT_CLOSE | COMMAND_OPEN | COMMAND_CLOSE | CLOSING_TAG )
        int alt5=15;
        int LA5_0 = input.LA(1);

        if ( (LA5_0=='=') ) {
            alt5=1;
        }
        else if ( (LA5_0=='\n'||LA5_0=='\r') ) {
            alt5=2;
        }
        else if ( (LA5_0=='<') ) {
            switch ( input.LA(2) ) {
            case '/':
                {
                alt5=15;
                }
                break;
            case '%':
                {
                int LA5_12 = input.LA(3);

                if ( ((LA5_12>='\u0000' && LA5_12<='\uFFFE')) ) {
                    alt5=5;
                }
                else {
                    alt5=13;}
                }
                break;
            case '!':
                {
                int LA5_13 = input.LA(3);

                if ( (LA5_13=='-') ) {
                    int LA5_20 = input.LA(4);

                    if ( (LA5_20=='-') ) {
                        int LA5_22 = input.LA(5);

                        if ( ((LA5_22>='\u0000' && LA5_22<='\uFFFE')) ) {
                            alt5=3;
                        }
                        else {
                            alt5=11;}
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("1:1: Tokens : ( T25 | LINEEND | XML_COMMENT | WHITESPACE | CODE_SNIPPET | WORD | STRING_LITERAL | TAG_OPEN | TAG_CLOSE | TAG_SELF_CLOSE | COMMENT_OPEN | COMMENT_CLOSE | COMMAND_OPEN | COMMAND_CLOSE | CLOSING_TAG );", 5, 20, input);

                        throw nvae;
                    }
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("1:1: Tokens : ( T25 | LINEEND | XML_COMMENT | WHITESPACE | CODE_SNIPPET | WORD | STRING_LITERAL | TAG_OPEN | TAG_CLOSE | TAG_SELF_CLOSE | COMMENT_OPEN | COMMENT_CLOSE | COMMAND_OPEN | COMMAND_CLOSE | CLOSING_TAG );", 5, 13, input);

                    throw nvae;
                }
                }
                break;
            default:
                alt5=8;}

        }
        else if ( (LA5_0=='\t'||LA5_0=='\f'||LA5_0==' ') ) {
            alt5=4;
        }
        else if ( (LA5_0=='/') ) {
            int LA5_5 = input.LA(2);

            if ( (LA5_5=='>') ) {
                alt5=10;
            }
            else {
                alt5=6;}
        }
        else if ( (LA5_0=='\"') ) {
            alt5=7;
        }
        else if ( (LA5_0=='>') ) {
            alt5=9;
        }
        else if ( (LA5_0=='-') ) {
            int LA5_8 = input.LA(2);

            if ( (LA5_8=='-') ) {
                int LA5_16 = input.LA(3);

                if ( (LA5_16=='>') ) {
                    alt5=12;
                }
                else {
                    alt5=6;}
            }
            else {
                alt5=6;}
        }
        else if ( (LA5_0=='%') ) {
            int LA5_9 = input.LA(2);

            if ( (LA5_9=='>') ) {
                alt5=14;
            }
            else {
                alt5=6;}
        }
        else if ( ((LA5_0>='\u0000' && LA5_0<='\b')||LA5_0=='\u000B'||(LA5_0>='\u000E' && LA5_0<='\u001F')||LA5_0=='!'||(LA5_0>='#' && LA5_0<='$')||(LA5_0>='&' && LA5_0<=',')||LA5_0=='.'||(LA5_0>='0' && LA5_0<=';')||(LA5_0>='?' && LA5_0<='\uFFFE')) ) {
            alt5=6;
        }
        else {
            NoViableAltException nvae =
                new NoViableAltException("1:1: Tokens : ( T25 | LINEEND | XML_COMMENT | WHITESPACE | CODE_SNIPPET | WORD | STRING_LITERAL | TAG_OPEN | TAG_CLOSE | TAG_SELF_CLOSE | COMMENT_OPEN | COMMENT_CLOSE | COMMAND_OPEN | COMMAND_CLOSE | CLOSING_TAG );", 5, 0, input);

            throw nvae;
        }
        switch (alt5) {
            case 1 :
                // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:1:10: T25
                {
                mT25(); 

                }
                break;
            case 2 :
                // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:1:14: LINEEND
                {
                mLINEEND(); 

                }
                break;
            case 3 :
                // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:1:22: XML_COMMENT
                {
                mXML_COMMENT(); 

                }
                break;
            case 4 :
                // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:1:34: WHITESPACE
                {
                mWHITESPACE(); 

                }
                break;
            case 5 :
                // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:1:45: CODE_SNIPPET
                {
                mCODE_SNIPPET(); 

                }
                break;
            case 6 :
                // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:1:58: WORD
                {
                mWORD(); 

                }
                break;
            case 7 :
                // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:1:63: STRING_LITERAL
                {
                mSTRING_LITERAL(); 

                }
                break;
            case 8 :
                // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:1:78: TAG_OPEN
                {
                mTAG_OPEN(); 

                }
                break;
            case 9 :
                // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:1:87: TAG_CLOSE
                {
                mTAG_CLOSE(); 

                }
                break;
            case 10 :
                // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:1:97: TAG_SELF_CLOSE
                {
                mTAG_SELF_CLOSE(); 

                }
                break;
            case 11 :
                // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:1:112: COMMENT_OPEN
                {
                mCOMMENT_OPEN(); 

                }
                break;
            case 12 :
                // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:1:125: COMMENT_CLOSE
                {
                mCOMMENT_CLOSE(); 

                }
                break;
            case 13 :
                // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:1:139: COMMAND_OPEN
                {
                mCOMMAND_OPEN(); 

                }
                break;
            case 14 :
                // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:1:152: COMMAND_CLOSE
                {
                mCOMMAND_CLOSE(); 

                }
                break;
            case 15 :
                // C:\\workspace\\Bling\\src\\org\\bling\\language\\Bling.g:1:166: CLOSING_TAG
                {
                mCLOSING_TAG(); 

                }
                break;

        }

    }


 

}